home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine CD 1995 / Archive Magazine CD 1995.iso / discs / prog_disc / volume_5 / issue_06 / benchmarks / c_source / pipes < prev    next >
Encoding:
Text File  |  1991-06-04  |  694 b   |  41 lines

  1. /*
  2.  * Pipe testing benchmark
  3.  */
  4. #include "timer.h"
  5. #define BLOCKS 1024
  6.  
  7. char buffer[512];
  8.  
  9. int fld[2];
  10.  
  11. main()
  12. {
  13.     register int i;
  14.  
  15.     init_timer();
  16.     start_timer();
  17.     pipe(fld);
  18.     if(fork())
  19.     {
  20.         for(i = 0; i < BLOCKS; i++)
  21.         if(write(fld[1], buffer, 512) < 0)
  22.                 printf("Error in writing; i=%d\n", i);
  23.  
  24.         if(close(fld[1]) != 0)
  25.         printf("Error in parent closing\n");
  26.         print_elapsed("Pipe benchmark", SYSTEMMIN);
  27.     }
  28.     else
  29.     {
  30.         if(close(fld[1]) != 0)
  31.         printf("Error in child closing\n");
  32.  
  33.         for(;;)
  34.             if(read(fld[0], buffer, 512) == 0)
  35.             {
  36.                 break;
  37.             }
  38.     }
  39.     exit(0);
  40. }
  41.